In recent years, the number of devices provided with an interface that complies with the IEEE 1394 protocol, which is a high speed serial bus interface protocol, has been increasing year by year. The IEEE 1394 interface enables the connection and removal of a bus in a state when the power source is activated. A SCSI, which complies with a high speed interface protocol, is used to connect a computer to peripheral devices. The SCSI is widely used in peripheral devices of personal computers, such as hard disk drives and CD-ROM drive scanners.
To connect a device provided with a SCSI to a host PC, which runs on an OS such as Windows and has an IEEE 1394 interface, an interface converter, which converts data, is necessary for communication between different interfaces.
Referring to FIG. 1, a prior art interface converter 50, which is used between an IEEE 1394 interface and a SCSI, includes a data converter 1, an IEEE 1394 interface circuit 2, and a SCSI circuit 3. The IEEE 1394 interface circuit 2 is connected to a host PC 4, and the SCSI circuit 3 is connected to a SCSI device 5.
The IEEE 1394 interface employs a protocol referred to as SBP2 (SCSI-3 serial bus protocol 2), which is based on the SCSI protocol. Thus, the procedure for processing data and the contents of the data are similar in the SCSI and SBP2 protocols. Accordingly, the interface converter 50 performs simple conversion of data formats and transfers data between the IEEE 1394 interface and the SCSI.
Referring to FIG. 2, the IEEE 1394 interface circuit 2 and the SCSI circuit 3 both perform a command fetch process (step 1), a data transfer process based on the fetched command (step 2), and a status notification process (step 3), which is performed after the data transfer process.
More specifically, referring to FIG. 5, the IEEE 1394 interface circuit 2 repeats a process for retrieving a command operation request block (ORB) from the host PC, which operates in accordance with the IEEE 1394 protocol, a process for transferring data in accordance with the command ORB, and a process for notifying the status after the data transfer.
The SCSI circuit 3 repeats a CMD phase, which corresponds with the command ORB retrieving operation, a data IN/OUT phase, which corresponds with the data transfer operation, a status phase, which corresponds with the status notification operation, and a message phase.
The command ORB is a packet format, which carries out a command, and as shown in FIG. 3, includes a data section and a command block section. The data section includes various data sections, such as those for data volume, transfer speed, page size, and data size. An execution command that is actually executed is written to the command block section.
The content of a command block is the same as that of the command sent to the SCSI device 5. Therefore, when the interface converter 50 receives the command ORB, the data converter 1 extracts the command block section and transfers the command block section to the SCSI device 5.
In the data transfer process that follows the command ORB retrieving process, the data converter 1 transfers the data received from the host PC 4 or from the SCSI device 5 to the SCSI device 5 or the host PC 4 in accordance with the execution command without processing the received data.
In the status notification process, when the interface converter 50 receives a status and message notification of the execution command from the SCSI device 5, the interface converter 50 associates the content of the notification with a status FIFO format of the IEEE 1394 interface and transfers the notification to the host PC 4.
More specifically, referring to FIG. 4, the interface converter 50 transfers the contents of the status and message notification to a command set-dependent section, which is in the status FIFO format. In the host PC 4, a driver, which runs on an OS such as Windows, operates to control the SPB2 protocol. A single driver controls every SPB2 compatible IEEE 1394 device that is connected to the driver.
Accordingly, the timing for starting the output of a command or data to the SCSI device 5 or the timing for starting error processing changes in accordance with the operating state of the host PC 4.
The prior art interface converter 50 has the shortcomings described below.
(1) When a command or data is transferred from the host PC 4 to the SCSI device 5 and if the IEEE 1394 interface side is functioning normally but an error occurs in the SCSI side, the converter must send an error notification to the host PC 4.
(2) When a command or data is transferred from the SCSI device 5 to the host PC 4 and if the SCSI side is functioning normally but an error occurs in the IEEE 1394 interface side, the converter 50 must send an error notification to the host PC 4.
(3) When an error occurs, the converter 50 waits for an instruction from the host PC 4 before performing a recovery process. Thus, it takes time until the recovery is completed. When an error occurs during the transfer of data, the data transfer rate decreases. This lowers the performance of the system.
(4) When an error occurs in the IEEE 1394 interface side or the SCSI side, the converter 50 must retry data transfer from the beginning.
(5) When the timing for starting the CMD phase, the data IN/OUT phase, and the status phase in the SCSI device 5 significantly differs from the timing for starting the command ORB retrieving process, the data transfer process, and the status notification process in the host PC 4, the host PC 4 determines that an error occurred in the SCSI even though there is no error. As a result, the recovery process is performed.